O que estudar sobre .net para o concurso da PROCERGS de 2025?
dot net para concurso
Veja abaixo um resumo dos principais assuntos sobre .net para concursos.
Dominando .NET Moderno: Guia Completo para Concursos e Carreira
Este guia vai transformar você em um especialista em .NET, cobrindo desde os fundamentos até tópicos avançados exigidos em concursos como o ANC - Analista em Computação (2025). Vamos usar uma linguagem didática, humanizada e memorável, com exemplos práticos e comparações do mundo real.
C# & .NET 5+/Core – O Coração do Ecossistema
Async/Await: Programação Assíncrona sem Traumas
Problema: Aplicações travam ao acessar bancos de dados ou APIs lentas.
Solução: async/await
permite que seu código "espere" sem bloquear a thread principal.
Solução:
async/await
permite que seu código "espere" sem bloquear a thread principal.Exemplo Prático:
public async Task<string> BaixarDadosAsync(string url)
{
using HttpClient client = new HttpClient();
string dados = await client.GetStringAsync(url); // Não trava a UI!
return dados;
}
Regra de Ouro:
Todo método async
deve retornar Task
ou Task<T>
.
Use await
para operações demoradas (IO, APIs, bancos de dados).
Analogia:
Imagine um garçom (thread) que entrega pedidos (tarefas) sem ficar parado esperando o cozinheiro (IO).
public async Task<string> BaixarDadosAsync(string url) { using HttpClient client = new HttpClient(); string dados = await client.GetStringAsync(url); // Não trava a UI! return dados; }
Todo método async
deve retornar Task
ou Task<T>
.
Use await
para operações demoradas (IO, APIs, bancos de dados).
Imagine um garçom (thread) que entrega pedidos (tarefas) sem ficar parado esperando o cozinheiro (IO).
LINQ: Consultas Elegantes em C#
O que é? Uma forma de fazer consultas (como SQL) diretamente em coleções ou bancos de dados.
Exemplos:
var produtosBaratos = produtos
.Where(p => p.Preco < 100)
.OrderBy(p => p.Nome)
.ToList();
// LINQ to SQL (Entity Framework)
var clientesAtivos = db.Clientes
.Where(c => c.Ativo)
.Select(c => new { c.Nome, c.Email })
.ToList();
Tipos de LINQ:
LINQ to Objects (listas em memória).
LINQ to SQL/EF Core (banco de dados).
Dica de Memória:
"LINQ é como um tradutor que converte seu C# em SQL ou filtra listas rapidamente."
var produtosBaratos = produtos .Where(p => p.Preco < 100) .OrderBy(p => p.Nome) .ToList(); // LINQ to SQL (Entity Framework) var clientesAtivos = db.Clientes .Where(c => c.Ativo) .Select(c => new { c.Nome, c.Email }) .ToList();
LINQ to Objects (listas em memória).
LINQ to SQL/EF Core (banco de dados).
"LINQ é como um tradutor que converte seu C# em SQL ou filtra listas rapidamente."
.NET 5 vs .NET Core vs .NET Framework
Versão Quando Usar? Status .NET Framework Legado (Windows only) Obsoleto .NET Core Cross-platform (Linux, macOS) Substituído pelo 5+ .NET 5+ Futuro (unificação) Recomendado
Migrando?
.NET Framework → .NET 6/8 (LTS) para aproveitar performance e containers.
Versão | Quando Usar? | Status |
---|---|---|
.NET Framework | Legado (Windows only) | Obsoleto |
.NET Core | Cross-platform (Linux, macOS) | Substituído pelo 5+ |
.NET 5+ | Futuro (unificação) | Recomendado |
.NET Framework → .NET 6/8 (LTS) para aproveitar performance e containers.
ASP.NET Core (MVC + REST API)
Injeção de Dependência (DI)
Problema: Classes acopladas são difíceis de testar e manter.
Solução: O .NET injeta dependências automaticamente.
Solução: O .NET injeta dependências automaticamente.
Como Implementar?
// 1. Interface (contrato)
public interface IEmailService
{
void Enviar(string mensagem);
}
// 2. Implementação
public class EmailService : IEmailService
{
public void Enviar(string mensagem) => Console.WriteLine(mensagem);
}
// 3. Registrar no container DI (Program.cs)
builder.Services.AddScoped<IEmailService, EmailService>();
// 4. Usar em um Controller
public class PedidoController : Controller
{
private readonly IEmailService _emailService;
public PedidoController(IEmailService emailService) // Injetado!
{
_emailService = emailService;
}
}
Tipos de Ciclo de Vida:
AddSingleton
(1 instância para toda a aplicação).
AddScoped
(1 instância por requisição).
AddTransient
(nova instância a cada chamada).
// 1. Interface (contrato) public interface IEmailService { void Enviar(string mensagem); } // 2. Implementação public class EmailService : IEmailService { public void Enviar(string mensagem) => Console.WriteLine(mensagem); } // 3. Registrar no container DI (Program.cs) builder.Services.AddScoped<IEmailService, EmailService>(); // 4. Usar em um Controller public class PedidoController : Controller { private readonly IEmailService _emailService; public PedidoController(IEmailService emailService) // Injetado! { _emailService = emailService; } }
AddSingleton
(1 instância para toda a aplicação).
AddScoped
(1 instância por requisição).
AddTransient
(nova instância a cada chamada).
Padrão MVC (Model-View-Controller)
Fluxo:
Controller recebe a requisição.
Model (dados) é processado.
View (HTML) é renderizada.
Controller recebe a requisição.
Model (dados) é processado.
View (HTML) é renderizada.
Exemplo:
public class HomeController : Controller
{
public IActionResult Index()
{
var model = new { Mensagem = "Olá, MVC!" };
return View(model); // Renderiza Views/Home/Index.cshtml
}
}
Dica Visual:
Pense no MVC como um restaurante:
Cliente (Browser) faz pedido.
Garçom (Controller) leva à cozinha.
Cozinha (Model) prepara.
Garçom entrega prato (View).
public class HomeController : Controller { public IActionResult Index() { var model = new { Mensagem = "Olá, MVC!" }; return View(model); // Renderiza Views/Home/Index.cshtml } }
Pense no MVC como um restaurante:
Cliente (Browser) faz pedido.
Garçom (Controller) leva à cozinha.
Cozinha (Model) prepara.
Garçom entrega prato (View).
3. Autenticação JWT (APIs REST)
O que é? Tokens seguros para identificar usuários sem sessão.
Implementação Básica:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = "seu_dominio.com",
ValidateAudience = true,
ValidAudience = "seu_app",
ValidateLifetime = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("SUA_CHAVE_SECRETA"))
};
});
Fluxo:
Usuário faz login → API retorna JWT.
Cliente envia JWT no header (Authorization: Bearer <token>
).
API valida token e autoriza acesso.
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidIssuer = "seu_dominio.com", ValidateAudience = true, ValidAudience = "seu_app", ValidateLifetime = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("SUA_CHAVE_SECRETA")) }; });
Usuário faz login → API retorna JWT.
Cliente envia JWT no header (Authorization: Bearer <token>
).
API valida token e autoriza acesso.
Entity Framework Core (ORM Poderoso)
Migrations: Controle de Versão do Banco
Comandos Essenciais:
dotnet ef migrations add Inicial # Cria migration
dotnet ef database update # Aplica ao banco
Exemplo de Migration:
public class Produto
{
public int Id { get; set; }
public string Nome { get; set; }
}
// Na migration:
migrationBuilder.CreateTable(
name: "Produtos",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Nome = table.Column<string>(nullable: false)
});
dotnet ef migrations add Inicial # Cria migration dotnet ef database update # Aplica ao banco
public class Produto { public int Id { get; set; } public string Nome { get; set; } } // Na migration: migrationBuilder.CreateTable( name: "Produtos", columns: table => new { Id = table.Column<int>(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Nome = table.Column<string>(nullable: false) });
EF Core vs Dapper: Quando Usar?
EF Core Dapper ORM completo (migrations, LINQ) Micro-ORM (performance bruta) Ideal para CRUD simples Ideal para queries complexas Gera SQL automaticamente Você escreve o SQL
Exemplo Dapper:
using var conexao = new SqlConnection(connectionString);
var produtos = conexao.Query<Produto>("SELECT * FROM Produtos WHERE Preco > @preco", new { preco = 50 });
Dica:
Use EF Core para 90% dos casos e Dapper para consultas otimizadas.
EF Core | Dapper |
---|---|
ORM completo (migrations, LINQ) | Micro-ORM (performance bruta) |
Ideal para CRUD simples | Ideal para queries complexas |
Gera SQL automaticamente | Você escreve o SQL |
using var conexao = new SqlConnection(connectionString); var produtos = conexao.Query<Produto>("SELECT * FROM Produtos WHERE Preco > @preco", new { preco = 50 });
Use EF Core para 90% dos casos e Dapper para consultas otimizadas.
Conclusão: Sinergia do .NET
Todos esses tópicos trabalham juntos:
C# é a linguagem.
ASP.NET Core usa DI e MVC para web.
EF Core acessa bancos com LINQ.
JWT protege suas APIs.
Próximos Passos:
Baixe o .NET 8.
Crie um projeto com dotnet new webapi
.
Pratique com desafios reais (ex: "CRUD de produtos com autenticação JWT").
"Dominar .NET é como construir um Lego: cada peça (C#, MVC, EF Core) encaixa perfeitamente!"
C# é a linguagem.
ASP.NET Core usa DI e MVC para web.
EF Core acessa bancos com LINQ.
JWT protege suas APIs.
Baixe o .NET 8.
Crie um projeto com dotnet new webapi
.
Pratique com desafios reais (ex: "CRUD de produtos com autenticação JWT").
Dominando .NET: Guia Completo para Concursos e Entrevistas
Se você está se preparando para concursos públicos, processos seletivos ou entrevistas técnicas, entender o ecossistema .NET é essencial. Este guia aborda os principais conceitos de forma didática e memorável, cobrindo desde fundamentos até tópicos avançados como Docker e Kubernetes.
O Que é .NET? Entendendo a Plataforma
O .NET (pronuncia-se "dotnet") é um framework desenvolvido pela Microsoft para construir aplicações modernas, incluindo:
- Aplicações Web (com ASP.NET e Blazor)
- APIs RESTful (para integração entre sistemas)
- Programas Desktop (Windows Forms, WPF)
- Aplicativos Mobile (com Xamarin e MAUI)
- Microsserviços (rodando em containers Docker)
Evolução do .NET
.NET Framework (2002): Primeira versão, só funcionava no Windows.
.NET Core (2016): Versão moderna, cross-platform (Windows, Linux, macOS).
.NET 5+ (2020): Unificação do .NET Core e Framework em uma única plataforma.
Por que isso importa?
Se a prova mencionar ".NET Core", já sabe: é a versão mais moderna e flexível.
Linguagens do .NET: C# é a Estrela
A linguagem principal do .NET é o C# (pronuncia-se "C Sharp"), mas também suporta:
F# (para programação funcional)
VB.NET (mais antigo, menos usado hoje)
Características do C#
- Orientação a Objetos (classes, herança, polimorfismo)
- Tipagem Forte (menos erros em tempo de execução)
- Moderno (suporte a async/await, LINQ, records)
Dica de memorização:
"C# é como um canivete suíço – resolve desde sistemas simples até aplicações complexas com poucas linhas de código."
Entity Framework: O ORM do .NET
Se você já se perguntou:
"Preciso escrever SQL manualmente?"
A resposta é NÃO, graças ao Entity Framework (EF), um ORM (Object-Relational Mapper) que:
- Mapeia tabelas do banco para classes em C#
- Gera consultas SQL automaticamente
- Suporta migrações (atualiza esquema do banco sem perder dados)
Entity Framework vs. Dapper
Entity Framework | Dapper |
---|---|
Mais alto nível (menos código) | Mais rápido (performance otimizada) |
Ideal para CRUD simples | Melhor para queries complexas |
Quando usar?
Se precisar de produtividade, vá de EF.
Se o projeto exige alta performance, considere Dapper.
ASP.NET MVC: O Padrão Web do .NET
Se você já usou Java Spring ou Laravel, o ASP.NET MVC segue uma lógica similar:
Model → Lógica de negócios e dados
View → Interface do usuário (HTML, CSS)
Controller → Recebe requisições e decide o que fazer
Exemplo de fluxo:
Usuário acessa
/produtos
.Controller busca dados no Model.
View renderiza a lista de produtos.
Vantagens:
Separação clara de responsabilidades
Fácil manutenção e testes
ASP.NET Core: A Revolução Cross-Platform
O ASP.NET Core é a evolução do ASP.NET clássico, com:
Performance superior (até 10x mais rápido)
Roda em Linux, macOS e Windows
Integração nativa com Docker
Principais recursos:
Middlewares (pipelines de processamento)
Injeção de Dependência (DI) nativa
SignalR (para aplicações em tempo real)
Dica:
"Se a prova mencionar .NET Core, lembre: é a versão moderna e multiplataforma."
LINQ: Consultas Elegantes em C#
O LINQ (Language Integrated Query) permite fazer consultas diretamente no C#, sem depender de SQL puro.
Exemplo:
var produtosBaratos = db.Produtos
.Where(p => p.Preco < 100)
.OrderBy(p => p.Nome)
.ToList();
Vantagens:
Código mais legível
Compilação segura (erros são pegos antes de rodar)
Tipos de LINQ:
LINQ to Objects (listas em memória)
LINQ to SQL (banco de dados)
LINQ to XML (arquivos XML)
Docker e Kubernetes: .NET na Nuvem
Docker: Empacotando Aplicações .NET
O que é? Containers isolados que rodam em qualquer lugar.
Benefícios:
"Funciona na minha máquina" vira "funciona em qualquer lugar"
Deploy consistente (sem surpresas entre ambientes)
Kubernetes: Orquestrando Containers
Para que serve?
Escala automaticamente (mais containers se a demanda aumentar)
Gerencia falhas (reinicia containers que quebram)
Exemplo de uso:
Você desenvolve uma API em .NET.
Empacota no Docker.
Implanta no Kubernetes para escalar sob demanda.
Resumo dos Principais Conceitos
Tópico | O Que É? | Por Que Importa? |
---|---|---|
.NET 5+ | Plataforma unificada | Substitui o .NET Framework |
C# | Linguagem principal | Sintaxe moderna e poderosa |
Entity Framework | ORM para bancos de dados | Evita SQL manual |
ASP.NET MVC | Padrão para aplicações web | Separação clara de código |
ASP.NET Core | Versão moderna do ASP.NET | Roda em Linux e é mais rápido |
LINQ | Consultas integradas ao C# | Código mais limpo e seguro |
Docker | Containers para aplicações | Deploy consistente |
Kubernetes | Orquestrador de containers | Escalabilidade automática |
Conclusão: Como Estudar para Prova?
Domine C# (sintaxe, POO, async/await)
Pratique Entity Framework (CRUD, migrações)
Entenda ASP.NET Core (middlewares, DI)
Explore Docker (containers, imagens)
Revise Kubernetes (pods, deployments)
Dica Final:
"Não decore, entenda. .NET é sobre boas práticas e arquitetura limpa."
Não, .NET NÃO é uma linguagem de programação.
Não, .NET NÃO é uma linguagem de programação.
Explicação clara (em 3 pontos):
O que é .NET?
É uma plataforma de desenvolvimento (framework) criada pela Microsoft para construir aplicações.
Qual a linguagem principal do .NET?
C# (a mais usada), mas também suporta F# e VB.NET.
Analogia para memorizar:
Pense no .NET como um "motor" e no C# como o "combustível" que faz ele funcionar.
O que é .NET?
É uma plataforma de desenvolvimento (framework) criada pela Microsoft para construir aplicações.
Qual a linguagem principal do .NET?
C# (a mais usada), mas também suporta F# e VB.NET.
Analogia para memorizar:
Pense no .NET como um "motor" e no C# como o "combustível" que faz ele funcionar.
Confusão comum em provas:
.NET Framework vs .NET Core vs .NET 5+: Todos são versões da plataforma, não linguagens.
C# ≠ .NET: C# é a linguagem; .NET é o ambiente onde ela roda.
Exemplo de questão (sem resposta):
"Sobre .NET, é correto afirmar que:"
a) É uma linguagem de programação.
b) É uma plataforma que executa código em C#.
c) É um banco de dados.
(Dica: A resposta certa é a B!)
Precisa de mais detalhes? É só perguntar!
.NET Framework vs .NET Core vs .NET 5+: Todos são versões da plataforma, não linguagens.
C# ≠ .NET: C# é a linguagem; .NET é o ambiente onde ela roda.
Exemplo de questão (sem resposta):
"Sobre .NET, é correto afirmar que:"
a) É uma linguagem de programação.
b) É uma plataforma que executa código em C#.
c) É um banco de dados.
(Dica: A resposta certa é a B!)
Precisa de mais detalhes? É só perguntar!
Equivalentes do .NET em Outras Linguagens
Java (Ecossistema JVM)
Plataforma: Java Virtual Machine (JVM)
Similar ao .NET Runtime (executa bytecode).
Frameworks:
Spring Boot ≈ ASP.NET Core (para APIs/web).
Hibernate ≈ Entity Framework (ORM).
Jakarta EE ≈ .NET Framework (enterprise).
Plataforma: Java Virtual Machine (JVM)
Similar ao .NET Runtime (executa bytecode).
Frameworks:
Spring Boot ≈ ASP.NET Core (para APIs/web).
Hibernate ≈ Entity Framework (ORM).
Jakarta EE ≈ .NET Framework (enterprise).
Python
Plataforma: Interpretador Python (CPython, PyPy).
Frameworks:
Django/Flask ≈ ASP.NET Core (web).
SQLAlchemy ≈ Entity Framework (ORM).
Plataforma: Interpretador Python (CPython, PyPy).
Frameworks:
Django/Flask ≈ ASP.NET Core (web).
SQLAlchemy ≈ Entity Framework (ORM).
JavaScript/Node.js
Plataforma: Node.js (runtime JavaScript).
Frameworks:
Express.js ≈ ASP.NET Core (APIs/web).
TypeORM ≈ Entity Framework (ORM).
Plataforma: Node.js (runtime JavaScript).
Frameworks:
Express.js ≈ ASP.NET Core (APIs/web).
TypeORM ≈ Entity Framework (ORM).
Go (Golang)
Plataforma: Compilador nativo (não precisa de runtime).
Frameworks:
Gin ≈ ASP.NET Core (APIs rápidas).
Plataforma: Compilador nativo (não precisa de runtime).
Frameworks:
Gin ≈ ASP.NET Core (APIs rápidas).
Ruby
Plataforma: Ruby MRI (interpretador).
Frameworks:
Ruby on Rails ≈ ASP.NET MVC (web full-stack).
Plataforma: Ruby MRI (interpretador).
Frameworks:
Ruby on Rails ≈ ASP.NET MVC (web full-stack).
PHP
Plataforma: Interpretador PHP (Zend Engine).
Frameworks:
Laravel ≈ ASP.NET Core (web).
Eloquent ≈ Entity Framework (ORM).
Plataforma: Interpretador PHP (Zend Engine).
Frameworks:
Laravel ≈ ASP.NET Core (web).
Eloquent ≈ Entity Framework (ORM).
Comparação Rápida
Recurso .NET Java (JVM) Node.js Python Runtime CLR JVM Node.js (V8) Interpretador ORM Entity Framework Hibernate TypeORM SQLAlchemy Web Framework ASP.NET Core Spring Boot Express.js Django/Flask Mobile Xamarin/MAUI Android SDK React Native Kivy (raro)
Recurso | .NET | Java (JVM) | Node.js | Python |
---|---|---|---|---|
Runtime | CLR | JVM | Node.js (V8) | Interpretador |
ORM | Entity Framework | Hibernate | TypeORM | SQLAlchemy |
Web Framework | ASP.NET Core | Spring Boot | Express.js | Django/Flask |
Mobile | Xamarin/MAUI | Android SDK | React Native | Kivy (raro) |
Quando Usar .NET vs Outros?
.NET: Melhor para integração com Windows, performance e C#.
Java/JVM: Melhor para aplicações enterprise (bancos, grandes sistemas).
Node.js: Melhor para APIs leves e tempo real (WebSockets).
Python: Melhor para IA/Data Science e prototipagem rápida.
Precisa de mais detalhes sobre algum ecossistema?
.NET: Melhor para integração com Windows, performance e C#.
Java/JVM: Melhor para aplicações enterprise (bancos, grandes sistemas).
Node.js: Melhor para APIs leves e tempo real (WebSockets).
Python: Melhor para IA/Data Science e prototipagem rápida.
Precisa de mais detalhes sobre algum ecossistema?
.NET é um framework?
Sim, .NET é um framework (mais precisamente, um ecossistema de desenvolvimento), mas com nuances importantes.
Sim, .NET é um framework (mais precisamente, um ecossistema de desenvolvimento), mas com nuances importantes.
Explicação Detalhada:
O que é um framework?
Um framework é uma estrutura pronta que fornece:
Bibliotecas de código.
Ferramentas para desenvolvimento.
Um ambiente de execução (como o CLR no .NET).
Um framework é uma estrutura pronta que fornece:
Bibliotecas de código.
Ferramentas para desenvolvimento.
Um ambiente de execução (como o CLR no .NET).
.NET se encaixa nisso?
✔ Sim, pois oferece:
Bibliotecas padrão (para IO, redes, threads).
Ferramentas (compilador, gerenciador de pacotes NuGet).
Runtime (CLR - Common Language Runtime).
✔ Sim, pois oferece:
Bibliotecas padrão (para IO, redes, threads).
Ferramentas (compilador, gerenciador de pacotes NuGet).
Runtime (CLR - Common Language Runtime).
Mas... é mais que um framework tradicional!
O .NET também inclui:
Linguagens (C#, F#, VB.NET).
Sub-frameworks (ex: ASP.NET Core para web, MAUI para mobile).
Suporte multiplataforma (Linux, macOS, Windows).
Por isso, tecnicamente é chamado de plataforma (um ecossistema completo).
O .NET também inclui:
Linguagens (C#, F#, VB.NET).
Sub-frameworks (ex: ASP.NET Core para web, MAUI para mobile).
Suporte multiplataforma (Linux, macOS, Windows).
Por isso, tecnicamente é chamado de plataforma (um ecossistema completo).
Analogia para Entender:
Pense no .NET como um "kit de construção de aplicativos" que inclui:
Ferramentas (martelo, serrote = compilador, bibliotecas).
Materiais (tijolos, cimento = linguagens como C#).
Manual de instruções (regras de execução = CLR).
Outros frameworks (como Spring para Java) são apenas parte desse kit.
Pense no .NET como um "kit de construção de aplicativos" que inclui:
Ferramentas (martelo, serrote = compilador, bibliotecas).
Materiais (tijolos, cimento = linguagens como C#).
Manual de instruções (regras de execução = CLR).
Outros frameworks (como Spring para Java) são apenas parte desse kit.
Resumo Final:
Termo Definição .NET se encaixa? Framework Estrutura com bibliotecas e ferramentas Sim (principalmente) Plataforma Ecossistema completo (linguagens + ferramentas + runtime) Sim (mais abrangente) Linguagem Sintaxe para escrever código (ex: C#) Não (C# é a linguagem)
Termo | Definição | .NET se encaixa? |
---|---|---|
Framework | Estrutura com bibliotecas e ferramentas | Sim (principalmente) |
Plataforma | Ecossistema completo (linguagens + ferramentas + runtime) | Sim (mais abrangente) |
Linguagem | Sintaxe para escrever código (ex: C#) | Não (C# é a linguagem) |
Exemplo Prático:
Você usa o .NET quando:
Cria uma API com ASP.NET Core (framework dentro do .NET).
Desenvolve um app com C# + Entity Framework (linguagem + ORM do ecossistema).
Conclusão:
".NET é primariamente um framework, mas vai além, funcionando como uma plataforma unificada. Por isso, ambos os termos são usados, dependendo do contexto."
Esclareceu? Se ainda tiver dúvidas, pode perguntar!
Você usa o .NET quando:
Cria uma API com ASP.NET Core (framework dentro do .NET).
Desenvolve um app com C# + Entity Framework (linguagem + ORM do ecossistema).
Conclusão:
".NET é primariamente um framework, mas vai além, funcionando como uma plataforma unificada. Por isso, ambos os termos são usados, dependendo do contexto."
Esclareceu? Se ainda tiver dúvidas, pode perguntar!
Node.js: Runtime (não framework)
O que faz?
Permite executar JavaScript fora do navegador (no servidor, desktop, etc.).
Comparação:
.NET CLR → Executa C#.
Node.js → Executa JavaScript.
Framework no Node.js?
Você usa frameworks (como Express.js) dentro do Node.js para criar aplicações.
O que faz?
Permite executar JavaScript fora do navegador (no servidor, desktop, etc.).Comparação:
.NET CLR → Executa C#.
Node.js → Executa JavaScript.
Framework no Node.js?
Você usa frameworks (como Express.js) dentro do Node.js para criar aplicações.
Comparação Direta
Termo Node.js .NET Tipo Runtime (executa JS) Plataforma (inclui runtime + frameworks) Framework Express.js, NestJS ASP.NET Core, MAUI Linguagem JavaScript/TypeScript C#, F#
Termo | Node.js | .NET |
---|---|---|
Tipo | Runtime (executa JS) | Plataforma (inclui runtime + frameworks) |
Framework | Express.js, NestJS | ASP.NET Core, MAUI |
Linguagem | JavaScript/TypeScript | C#, F# |
Analogia para Memorizar
Node.js é como um motor de carro (permite que o carro funcione).
Express.js (framework) é como o volante e os pedais (ferramentas para dirigir).
Node.js é como um motor de carro (permite que o carro funcione).
Express.js (framework) é como o volante e os pedais (ferramentas para dirigir).
Exemplo Prático
// Código Node.js (usando framework Express.js)
const express = require('express');
const app = express(); // <- Express é o framework!
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000); // <- Node.js roda o servidor
// Código Node.js (usando framework Express.js) const express = require('express'); const app = express(); // <- Express é o framework! app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(3000); // <- Node.js roda o servidor
Resumo Final
Node.js ≠ Framework: É a base que executa JavaScript no servidor.
Frameworks no Node.js:
Express.js (simples).
NestJS (avançado, similar ao ASP.NET Core).
Se precisar de exemplos de código ou mais comparações, é só pedir!
Node.js ≠ Framework: É a base que executa JavaScript no servidor.
Frameworks no Node.js:
Express.js (simples).
NestJS (avançado, similar ao ASP.NET Core).
Se precisar de exemplos de código ou mais comparações, é só pedir!
🔍 Por que .NET é considerado framework e Node.js não?
.NET é um "super-framework" (plataforma completa)
Oferece TUDO pronto em um pacote só:
Linguagens (C#, F#)
Bibliotecas padrão (para arquivos, redes, etc.)
Frameworks especializados (ASP.NET para web, MAUI para mobile)
Ambiente de execução (CLR)
Exemplo: É como comprar um kit Lego completo com peças e manual juntos
Node.js é um runtime (motor básico)
É APENAS um executador de JavaScript fora do navegador
NÃO vem com:
Linguagem (usa JavaScript/TypeScript que já existiam)
Bibliotecas completas (você instala separadamente)
Frameworks prontos (Express, NestJS são adicionais)
Exemplo: É como receber apenas o motor de um carro - você precisa montar o resto
.NET é um "super-framework" (plataforma completa)
Oferece TUDO pronto em um pacote só:
Linguagens (C#, F#)
Bibliotecas padrão (para arquivos, redes, etc.)
Frameworks especializados (ASP.NET para web, MAUI para mobile)
Ambiente de execução (CLR)
Exemplo: É como comprar um kit Lego completo com peças e manual juntos
Node.js é um runtime (motor básico)
É APENAS um executador de JavaScript fora do navegador
NÃO vem com:
Linguagem (usa JavaScript/TypeScript que já existiam)
Bibliotecas completas (você instala separadamente)
Frameworks prontos (Express, NestJS são adicionais)
Exemplo: É como receber apenas o motor de um carro - você precisa montar o resto
Comparação Técnica
.NET Node.js Tipo Plataforma/Framework Runtime Pré-requisitos Nenhum (tudo incluso) Precisa instalar frameworks depois Analogia Kit completo de maquete Motor solto para você montar
.NET | Node.js | |
---|---|---|
Tipo | Plataforma/Framework | Runtime |
Pré-requisitos | Nenhum (tudo incluso) | Precisa instalar frameworks depois |
Analogia | Kit completo de maquete | Motor solto para você montar |
Por que a confusão acontece?
Ambos permitem criar aplicações
Ambos têm ecossistemas grandes
A diferença está no nível de completude:
.NET = Tudo em um (Microsoft controla tudo)
Node.js = "Faça você mesmo" (comunidade adiciona peças)
Ambos permitem criar aplicações
Ambos têm ecossistemas grandes
A diferença está no nível de completude:
.NET = Tudo em um (Microsoft controla tudo)
Node.js = "Faça você mesmo" (comunidade adiciona peças)
Exemplo Prático
// .NET - Já tem TUDO incluso
var app = WebApplication.Create(); // Framework WEB já embutido
app.MapGet("/", () => "Hello World!");
app.Run();
// Node.js - Precisa adicionar TUDO
const express = require('express'); // Framework INSTALADO SEPARADAMENTE
const app = express();
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000);
Conclusão:
.NET é como um smartphone (tudo integrado), Node.js é como um PC gamer (você monta as peças). Ambos são úteis, mas a abordagem é diferente!
// .NET - Já tem TUDO incluso var app = WebApplication.Create(); // Framework WEB já embutido app.MapGet("/", () => "Hello World!"); app.Run();
// Node.js - Precisa adicionar TUDO const express = require('express'); // Framework INSTALADO SEPARADAMENTE const app = express(); app.get('/', (req, res) => res.send('Hello World!')); app.listen(3000);
Conclusão:
.NET é como um smartphone (tudo integrado), Node.js é como um PC gamer (você monta as peças). Ambos são úteis, mas a abordagem é diferente!
Questionário sobre .NET (Respostas Simples)
1. O que é .NET?
R: Plataforma de desenvolvimento da Microsoft para criar aplicações web, desktop, mobile e APIs.
2. Qual a diferença entre .NET Framework e .NET Core?
R: .NET Framework só roda no Windows; .NET Core é cross-platform (Linux, macOS).
3. Qual a linguagem principal do .NET?
R: C#.
4. O que é Entity Framework?
R: ORM que mapeia bancos de dados para objetos em C#, evitando SQL manual.
5. Cite uma vantagem do ASP.NET MVC.
R: Separação clara entre Model (dados), View (interface) e Controller (lógica).
6. Por que o ASP.NET Core é melhor que o ASP.NET clássico?
R: É mais rápido, cross-platform e integra com Docker.
7. Para que serve o LINQ?
R: Fazer consultas (como SQL) diretamente em C#.
8. O que Docker faz por aplicações .NET?
R: Empacota a aplicação em containers para rodar em qualquer SO.
9. Qual a função do Kubernetes?
R: Orquestrar containers (escalar, gerenciar falhas).
10. Qual padrão de projeto o ASP.NET MVC segue?
R: MVC (Model-View-Controller).
┌───────────────────────────────────────────────────────┐
│ .NET │
└───────────────┬───────────────────┬───────────────────┘
│ │
┌──────────▼──────┐ ┌────────▼─────────┐
│ Linguagens │ │ Frameworks │
│ ┌─────┐ ┌────┐ │ │ ┌─────┐ ┌─────┐ │
│ │ C# │ │ F# │ │ │ │ EF │ │ MVC │ │
│ └─────┘ └────┘ │ │ └─────┘ └─────┘ │
└─────────────────┘ └────────┬─────────┘
│
┌────────────────▼────────────────┐
│ ASP.NET Core │
│ ┌───────────┐ ┌─────────────┐ │
│ │ Middleware│ │ SignalR │ │
│ └───────────┘ └─────────────┘ │
└────────────────┬────────────────┘
│
┌───────────────▼────────────────┐
│ Cloud/DevOps │
│ ┌─────────┐ ┌──────────────┐ │
│ │ Docker │ │ Kubernetes │ │
│ └─────────┘ └──────────────┘ │
└────────────────────────────────┘
Tópicos Principais:
Linguagens
C# (principal)
F# (funcional)
Frameworks
Entity Framework (ORM)
ASP.NET MVC (padrão web)
ASP.NET Core
Middlewares
SignalR (tempo real)
Cloud/DevOps
Docker (containers)
Kubernetes (orquestração)
Questões da prova da PROCERGS de 2023 sobre .NET
Se você está se preparando para um concurso com foco em .NET, este guia é o seu mapa para entender os principais conceitos cobrados nas questões 35 a 44 e 57 a 58. Vamos descomplicar os tópicos, destacar as respostas certas e tornar tudo mais fácil de memorizar.
1. O Que é .NET?
O .NET é um framework desenvolvido pela Microsoft para criar aplicações modernas, incluindo:
Web (ASP.NET, ASP.NET Core)
Desktop (Windows Forms, WPF)
Mobile (Xamarin, MAUI)
APIs (REST, gRPC)
Cloud (Azure, Docker, Kubernetes)
Diferença Entre .NET Framework, .NET Core e .NET 5+
Versão | Características |
---|---|
.NET Framework | Antigo, só roda no Windows |
.NET Core | Cross-platform (Windows, Linux, macOS) |
.NET 5+ | Evolução do Core, unificado (substitui o Framework) |
Questão 35:
Alternativa correta: B (A linguagem .NET é uma linguagem de programação, enquanto o framework .NET é uma plataforma de desenvolvimento).
2. Principais Tecnologias .NET
A) Entity Framework Core (ORM)
O que faz? Mapeia objetos do código para tabelas no banco de dados (evita SQL manual).
Vantagens:
Menos código repetitivo.
Suporte a vários bancos (SQL Server, PostgreSQL, MySQL).
Questão 36:
Alternativa correta: C (Possibilidade de gerenciar banco de dados sem SQL).
B) ASP.NET MVC
Padrão MVC:
Model (Dados) → Lógica de negócios.
View (Interface) → HTML, CSS.
Controller (Intermediário) → Processa requisições.
Questão 40:
Alternativa correta: C (Separação em Model, View, Controller).
C) ASP.NET Core
Melhorias em relação ao ASP.NET clássico:
Mais rápido e leve.
Cross-platform (roda no Linux).
Integração com Docker e Kubernetes.
Questão 43:
Alternativa correta: D (Framework web de código aberto para aplicações modernas).
D) LINQ (Language Integrated Query)
O que faz? Permite consultar dados (SQL-like) diretamente no C#.
Exemplo:
var produtosBaratos = produtos.Where(p => p.Preco < 100).ToList();
Questão 42:
Alternativa correta: C (Consulta em memória sobre objetos).
E) REST API em .NET
O que é? Arquitetura para criar APIs web (HTTP + JSON).
Vantagens:
Escalável (suporta milhões de requisições).
Flexível (integra com front-end, mobile, outros serviços).
Questão 39:
Alternativa correta: E (Arquitetura flexível e escalável).
3. Docker e Kubernetes com .NET
A) Docker
O que faz? Empacota aplicações em containers (isolados e portáteis).
Vantagens para .NET:
Rodar a mesma aplicação em qualquer SO.
Facilidade em deploy na nuvem.
Questão 57:
Alternativa correta: B (Facilitar o gerenciamento de containers no Kubernetes).
B) Kubernetes (K8s)
O que faz? Orquestra containers (escala automaticamente, gerencia falhas).
Vantagens para .NET:
Auto-scaling (aumenta/diminui instâncias conforme demanda).
Zero downtime (atualizações sem derrubar o sistema).
Questão 58:
Alternativa correta: C (Escalabilidade automática).
┌───────────────────────────────────────────────────────────────┐
│ .NET (ECOSSISTEMA) │
└───────────────┬───────────────────────┬───────────────────────┘
│ │
┌───────────▼───────┐ ┌─────────▼─────────────────┐
│ LINGUAGENS │ │ FRAMEWORKS │
│ • C# (Principal) │ │ • Entity Framework (ORM) │
│ • F# (Funcional) │ │ • ASP.NET MVC (Web) │
└───────────┬───────┘ └─────────┬─────────────────┘
│ │
┌───────────▼───────────────────────▼───────────┐
│ ASP.NET CORE (MODERNO) │
│ • Cross-platform (Linux, Windows, macOS) │
│ • Middlewares (Pipeline de requisições) │
│ • SignalR (Comunicação em tempo real) │
└───────────────────────┬───────────────────────┘
│
┌───────────────────────▼───────────────────────┐
│ CLOUD & DEVOPS (ESCALABILIDADE) │
│ • Docker (Empacotamento em Containers) │
│ • Kubernetes (Orquestração de Containers) │
└───────────────────────────────────────────────┘
Leia mais em: otnet.microsoft.com/en-us/